System and method for increased call quality and success rate

ABSTRACT

A system and method for providing a communication session is provided. The system and method include a client device in communication with a plurality of communication networks. The system and method further includes a server also in communication with the plurality of communication networks. The client device includes a network monitor module and a dialer module. The network monitor module determines which networks to utilize in the communication session, and the dialer module initiates and terminates the communication session. The server receives a data signal associated with the communication session from the selected communication network. The server places a separate call to the recipient client device and completes the connection from the client device to the recipient client device by sending the data signal over the phone call to the recipient client device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication Ser. No. 61/883,644, filed on Sep. 27, 2013, which is herebyincorporated by reference in its entirety. This application is relatedto U.S. patent application Ser. No. 14/140,953, filed on Dec. 26, 2013,and entitled “METHOD AND SYSTEM FOR MOVING PHONE CALL PARTICIPATIONBETWEEN CARRIER AND DATA NETWORKS.”

BACKGROUND OF THE INVENTION

In mobile communications, the quality of a phone call such as a voice orvideo call is heavily affected by the signal reception associated withthe network over which the communication is taking place. For example,often a signal from a cellular communications network will not propagateindoors and calls relying on the cellular signal will greatly degrade oreven drop altogether.

Additionally, an already established phone call cannot be automaticallychanged to a video call even when a suitable data network for videocalling is available. For example, a phone call taking place over acarrier network cannot be automatically moved to an available datanetwork more suitable for a video call.

BRIEF SUMMARY OF THE INVENTION

One embodiment provides a method of communicating a data signal betweena client device and a recipient client device. The method comprisesmonitoring signal quality of a plurality of network connections at anetwork monitor of the client device; selecting at least one networkconnection of the plurality of network connections based on a signalquality of the at least one network connection; initiating acommunication session from a dialer of the client device over the atleast one network connection of the plurality of network connections;relaying a data signal associated with the communication session to aserver configured to receive data from the plurality of networkconnections; and completing the communication session to the recipientdevice from the server.

Another embodiment of the method provides initiating a secondcommunication session from the dialer of the client device over a secondnetwork connection of the plurality of network connections; relayingboth the data signal associated with the communication session and adata signal associated with the second communication session to theserver; associating the data signal associated with the communicationsession and the data signal associated with the second communicationsession as both being based on a same input into the client device;organizing the data signal associated with the communication session andthe data signal associated with the second communication session into asingle data signal; and sending the single data signal from the serverto the recipient device over a single communication session placed bythe server to the recipient device.

Another embodiment includes a system for communication between a clientdevice and a recipient device. The system comprises an input device; anoutput device; a network monitor configured to detect a signal strengthof each of the plurality of communication networks; and a dialerconfigured to initiate or terminate at least one communication sessionbased on the signal strength detected by the network monitor; and aserver configured to receive a data signal related to the at least onecommunication session from the client device and initiate acommunication session from the server to the recipient device based ondata received from the client device.

Yet another embodiment includes a method of maintaining a phone callbetween a client device and a recipient device. The method comprisesreceiving an at least one voice stream at a server from a dialerapplication operating on a client device over an at least one networkconnection; determining, by the server, a destination of the at leastone voice stream based on a phone number of the recipient device; andplacing a phone call from the server to the recipient device based onthe phone number.

Another embodiment includes a server configured as a central serviceconducting a communication session and configured to coordinate thesignaling of the communication session. The server comprises an at leastone processor; a network interface configured to communicatively couplethe server to a plurality of communication networks including at leastone carrier network and at least one data network; a media mixing modulerunning a media mixing service configured to coordinate a signaling pathbetween a plurality of client devices, the coordination of the signalingpath includes maintaining a phone call from each of the plurality ofclient devices to the media mixing service and joining the phone callfrom each of the plurality of client devices into a communicationsession sharing data between each of the plurality of client devices; amedia session data joining module running a data joining service, thedata joining service is configured to move an individual phone call froman individual client device of the plurality of client devices to the atleast one data network; and a connection number module running aconnection service, the connection service is configured to move theindividual phone call of the individual client device of the pluralityof client devices to the at least one carrier network.

Yet another embodiment includes a method of providing a communicationsession. Coordination of the signaling for the communication session isperformed by a server running a central service. The method comprisesreceiving a first data signal from a first client device at a mediamixing module of the server, the data signal contains media data fromthe first client device and an identifier of a second client device;conducting a first phone call between the first client device and themedia mixing module of the server based on the first data signalreceived from the first client device; initiating a second phone callfrom the media mixing module of the server to the second client devicebased on the identifier contained in the data signal from the firstclient device; connecting the second client device to the media mixingmodule of the server over the second phone call receiving a second datasignal from the second client device at the media mixing module of theserver, the second data signal contains media data from the secondclient device; and joining the first data signal of the first clientdevice and the second data signal of the second client device in a mediamixing communication session.

Another embodiment includes a non-transitory computer readable storagedevice for providing a media mixing communication session between aplurality of client devices. The computer readable storage device havingcomputer executable instructions for performing the steps of receiving afirst data signal from a first client device at a media mixing module ofa server interposed between each of the plurality of client devices, thedata signal contains media data from the first client device and anidentifier of a second client device; conducting a first phone callbetween the first client device and the media mixing module of theserver based on the first data signal received from the first clientdevice; initiating a second phone call from the media mixing module ofthe server to the second client device based on the identifier containedin the data signal from the first client device; connecting the secondclient device to the media mixing module of the server over the secondphone call receiving a second data signal from the second client deviceat the media mixing module of the server, the second data signalcontains media data from the second client device; and joining the firstdata signal of the first client device and the second data signal of thesecond client device in a media mixing communication session.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S)

FIG. 1 is a block diagram illustrating a system for providing increasedcall quality, according to an example embodiment;

FIG. 2 is a block diagram illustrating components of a client device ofFIG. 1, according to one embodiment;

FIG. 3 is a block diagram illustrating a server of FIG. 1, according toone embodiment;

FIG. 4 is a flow diagram associated with a network monitor of the clientdevice from FIG. 2, according to one embodiment;

FIG. 5 is a flow diagram associated with a dialer of the client devicefrom FIG. 2, according to one embodiment;

FIG. 6 is a flow diagram associated with the server from FIG. 3,according to one embodiment;

FIG. 7 is a flow diagram associated with the server from FIG. 3,according to one embodiment;

FIG. 8 is a flow diagram associated with moving a phone call coordinatedby the server of FIG. 3 to either a carrier network or a data network;and

FIG. 9 is a flow diagram associated with initiating a multimedia videocall utilizing the server of FIG. 3.

DETAILED DESCRIPTION OF THE INVENTION

In mobile communications, the quality of a phone call such as a voice orvideo call is heavily affected by the signal reception associated withthe network over which the communication is taking place. For example,often a signal from a Wide Area Network (WAN) such as a cellularcommunications carrier network will not propagate indoors and callsrelying on the cellular signal will greatly degrade or even dropaltogether. The inverse can be true as well, in that a Voice of InternetProtocol (VoIP) call placed over a Wireless Local Area Network (WLAN) ordata network such as a Wi-Fi network may experience a degraded signal oreven drop when a caller moves outdoors and away from the WLAN.

Additionally, during an ongoing call it may be desirable to switch froma carrier network to a data network or from a data network to a carriernetwork. For example, a phone call originally initiated to share audiodata may at some point during the phone call decide to switch to a videocall. Because of the increased data demand involved with a video call,it may be desirable to switch to another available network more suitablefor transmitting a video call.

Therefore, a system that allows a caller to move between networks whilemaintaining both quality and the overall success rate of a phone call isdesired. One such system is one that makes use of signals from both aWAN and WLAN when available together in order to improve networkquality. In this exemplary embodiment, a caller may complete a phonecall to a callee through a proxy service that tracks the phone call andwill resume the call if it is dropped due to issues with the network ora switch to a video call is requested.

FIG. 1 illustrates a block diagram of a communication system 100 inwhich various embodiments of the present disclosure may be implemented.In the system 100, a client device 102 is connected to a server 104through a plurality of communication networks, which are depicted inFIG. 1 as carrier network 108 and data network 110. In turn, the server104 communicates with a second client device 106 through anothercommunication network in the form of a Session Initiation Protocol (SIP)network 112. In this manner, a communication session such as a phonecall can be conducted between the initiating client device 102 and therecipient client device 106.

As an aside, while only three communication networks 108, 110 and 112are illustrated, in other embodiments, more are contemplated. Further,even though only client devices 102 and 106 are illustrated, more arecontemplated, as embodiments of the invention are capable ofcoordinating a communication session between a plurality ofparticipants. Even further, SIP network 112 could be replaced with morethan one network similar to carrier network 108 and data network 110.For ease of description the dynamics between the client device 102 andcarrier network 108 and data network 110 will generally be described inrelation to client device 102; however, similar functionality may beincluded with client device 106.

The client devices 102 and 106 may be a mobile device such as a smartphone, a tablet computer, a laptop computer, a watch with a computeroperating system, a personal digital assistant (PDA), a video gameconsole, a wearable or embedded digital device(s), or any one of anumber of additional devices with wireless communications capability.

Furthermore, communication networks 108 and 110 are generally wirelessnetworks. Example networks include but are not limited to Wide AreaNetworks (WAN) such as a Long Term Evolution (LTE) network, a GlobalSystem for Mobile Communications (GSM) network, a Code Division MultipleAccess (CDMA) network, a Wideband Code Division Multiple Access (WCDMA),Wireless Local Area Networks (WLAN) such as the various IEEE 802.11standards, or any other kind of carrier and data networks. Thecommunication networks 108 and 110 allow the client device 102 tocommunicate with the server 104. For example, client device 102 maytransmit information to the server 104 and receive information from theserver 104. For instance, communication networks 108 and 110 may eachseparately include a set of cell towers, as well as a set of basestations and/or mobile switching centers (MSCs) communicating over acellular carrier Public Switch Telephone Network (PSTN). In someembodiments, the communication networks 108 and 110 may include variouscell tower/base station/MSC arrangements over a cellular data network.

In the exemplary embodiment illustrated in FIG. 1, carrier network 108is a WAN such as a cellular carrier network providing network accessover a 2G, 3G, or 4G network, such as GSM, WCDMA, or LTE, respectively,communicating over either a PSTN or data network. And data network 110is a WLAN data network operating under one of the IEEE 802.11 standards.In this exemplary embodiment, coverage for the carrier network 108 maydegrade as client device 102 enters a building. However, wirelesscoverage inside the building may be adequate over data network 110.Therefore, client device 102 will have constant wireless access whentransitioning between good and bad coverage for both carrier network 108and data network 110.

In the exemplary embodiment illustrated in FIG. 1, server 104 isconfigured to receive and transmit a voice data signal, such as thatassociated with a Voice over Internet Protocol (VoIP) call or a carriernetwork voice call, between client device 102 and client device 106through the various networks 108, 110 and 112. Therefore, a caller usingclient device 102 may place a phone call to client device 106 throughserver 104. In this scenario, client device 102 connects to one of thecarrier network 108, the data network 110, or both simultaneously torelay a data signal associated with the phone call to the server 104.Server 104 then places a phone call to client device 106 over SIPnetwork 112. Server 104 knows to call the client device 106 by usinginformation identifying client device 106 sent in the data signalassociated with the phone call.

While in the exemplary embodiment server 104 transmits and receivesvoice data, server 104 may be configured to handle any type of data suchas multimedia data including audio, video, pictures, and text data andshare that data among the participants in the communication session.

Turning now to FIG. 2, a block diagram of basic functional componentsfor the client device 102 of FIG. 1, according to one aspect of thedisclosure, is illustrated. In general, many other embodiments of theclient device 102 may be used. In the illustrated embodiment of FIG. 2,the client device 102 includes one or more processors 202, memory 204, anetwork interface(s) 206, one or more storage devices 208, power source210, one or more output devices 212, one or more input devices 214, anetwork monitor 218, and a dialer module 220. The client device 102 alsoincludes an operating system 216. Each of the components including theprocessor 202, memory 204, network interface 206, storage device 208,power source 210, output device 212, input device 214, network monitor218, dialer module 220 and the operating system 216 are interconnectedphysically, communicatively, and/or operatively for inter-componentcommunications.

As an aside, client device 106 may be equipped with similarfunctionality. For ease of description, the functionality will bedescribed in relation to client device 102, but in certain embodimentsclient device 106 is equipped with similar functionality.

As illustrated, processor 202 is configured to implement functionalityand/or process instructions for execution within client device 102. Forexample, processor 202 executes instructions stored in memory 202 orinstructions stored on a storage device 204. Memory 202, which may be anon-transient, computer-readable storage medium, is configured to storeinformation within client device 102 during operation. In someembodiments, memory 202 includes a temporary memory, an area forinformation not to be maintained when the client device 102 is turnedoff. Examples of such temporary memory include volatile memories such asrandom access memories (RAM), dynamic random access memories (DRAM), andstatic random access memories (SRAM). Memory 202 also maintains programinstructions for execution by the processor 202.

Storage device 204 also includes one or more non-transientcomputer-readable storage media. The storage device 204 is generallyconfigured to store larger amounts of information than memory 202. Thestorage device 204 may further be configured for long-term storage ofinformation. In some examples, the storage device 204 includesnon-volatile storage elements. Non-limiting examples of non-volatilestorage elements include magnetic hard discs, optical discs, floppydiscs, flash memories, or forms of electrically programmable memories(EPROM) or electrically erasable and programmable (EEPROM) memories.

The client device 102 uses network interface(s) 206 to communicate withexternal devices via one or more networks, such as the communicationnetworks 108 and 110 of FIG. 1. Network interface(s) 206 may be anetwork interface card, such as an Ethernet card, an opticaltransceiver, a radio frequency transceiver, or any other type of devicethat can send and receive information. Other non-limiting examples ofnetwork interfaces include Bluetooth®, 2G, 3G, 4G and Wi-Fi radios inclient computing devices, and USB.

The client device 102 includes one or more input devices 214. Inputdevices 214 are configured to receive input from a user or a surroundingenvironment of the user through tactile, audio, and/or video feedback.Non-limiting examples of input device 214 include a presence-sensitivescreen, a mouse, a keyboard, a voice responsive system, video camera,microphone or any other type of input device. In some examples, apresence-sensitive screen includes a touch-sensitive screen.

One or more output devices 212 are also included in client device 102.Output devices 212 are configured to provide output to a user usingtactile, audio, and/or video stimuli. Output device 212 may include adisplay screen (part of the presence-sensitive screen), a sound card, avideo graphics adapter card, or any other type of device for convertinga signal into an appropriate form understandable to humans or machines.Additional examples of output device 212 include a speaker such asheadphones, a cathode ray tube (CRT) monitor, a liquid crystal display(LCD), or any other type of device that can generate intelligible outputto a user.

The client device 102 includes one or more power sources 210 to providepower to the device. Non-limiting examples of power source 210 includesingle-use power sources, rechargeable power sources, and/or powersources developed from nickel-cadmium, lithium-ion, or other suitablematerial.

The client device 102 includes an operating system 216. The operatingsystem 216 controls operations of the components of the client device102. For example, the operating system 216 facilitates the interactionof the processor(s) 202, memory 204, network interface 206, storagedevice(s) 208, input device 214, output device 212, power source 210,network monitor 218 and dialer module 220.

In certain embodiments of the disclosure, the client device 102 furtherincludes a network monitor module 218. The network monitor module 218keeps track of the signal quality of the various wireless communicationnetworks connected to the client device 102 through the networkinterface(s) 206. In the exemplary embodiment of FIG. 1, the networkmonitor module 218 would monitor the available signal quality from thecarrier network 108 and the data network 110.

In the exemplary embodiment of FIG. 1, the network monitor module 218would track whether the signal quality was decreasing or increasing forboth networks 108 and 110. Based on the detected signal quality, thenetwork monitor module 218 informs the client device 102 whether a phonecall should be initiated over carrier network 108 or data network 110.For example, the network monitor module 218 may decide that only thecarrier network 108 needs to be used for a phone call because its signalquality is adequate. However, if the signal quality of the carriernetwork 108 drops, which can be detected generally based on signalstrength when a voice call is not active or by actually tracking theperformance of the voice call, the network monitor module 218 maydetermine to use the data network 110 in addition to the carrier network108. If the phone call is then determined to be operating adequatelyover the data network 110 and the location of the client device 102 isrelatively stable, then the network monitor module 218 may determine toonly use the data network 110 and terminate the call over the carriernetwork 108.

In certain embodiments, the network monitor module 218 may decide to useone of the carrier network 108 or data network 110 based on theincreased signal strength of that network. For instance, if clientdevice 102 is already connected over the data network 110 but thenetwork monitor module 218 notices an increase in signal quality fromcarrier network 108, the network monitor module 218 may instruct theclient device 102 to connect over the carrier network 108 even though nodegradation of the data network 110 has occurred.

In certain embodiments, the network monitor module 218 may have accessto information regarding the historical performance of the carriernetwork 108 or data network 110 within the current geographic area inwhich the client device 102 may be located. In this embodiment, thenetwork monitor module 218 may decide to connect to one of the carriernetwork 108 or data network 110 based on this expected signal quality ofthe respective networks.

Accordingly, as discussed above, while a phone call is ongoing, thenetwork monitor module 218 continues to track the signal quality ofnetworks 108 and 110. In this manner, the network monitor module 218 candetermine whether the signal quality of the network currently in use isincreasing or decreasing and whether a suitable or even preferablealternative network exists based on the actual signal quality orexpected signal quality of the alternative networks and the currentnetwork.

Additionally, when the network monitor module 218 is monitoring acellular network, such as that in the exemplary embodiment discussedabove, the network monitor module 218 may collect further informationpertaining to both the PSTN and a data network associated with thecarrier network 108. Based on the further information collectedregarding the carrier network 108, the network monitor module 218 willmake a recommendation on whether a phone call should be placed over thecellular carrier PSTN or whether the phone call should be placed overthe data network using an Internet Protocol (IP) based communicationscheme such as the VoIP.

In certain embodiments, an additional function of the network monitormodule 218 is to determine whether the communication network(s)currently being used can support High Definition (HD) voice or video.Conducting a phone call using HD voice or video requires higherbandwidth than a typical voice call. Therefore, the network monitormodule 218 provides an indication of whether a communication network(s)is capable of supporting HD voice or video such that a call can beeither be initiated or upgraded to HD voice or a video call.

In certain embodiments of the disclosure, the client device 102 furtherincludes a dialer module 220. The dialer module 220 uses the networkrecommendation from the network monitor module 218 to place a phone callover either network 108 or 110.

Using the previously discussed exemplary embodiment illustrated in FIG.1, when a phone call is initiated the network monitor module 218 mayhave advised to use the carrier network 108. In this case, the dialermodule 220 would place the phone call over the carrier network 108 andmay further decide to use either the voice channel over the PSTN to makea regular phone call or it may use a cellular data channel to make aVoIP call, as determined by the network monitor module 218.

Subsequently, in a situation where the network monitor module 218detects degradation in the signal quality from the carrier network 108currently supporting the phone call or an increase in the signal qualityof the data network 110, a suggestion to use the data network 110 inaddition to the carrier network 108 may be made. In this scenario, thedialer module 220 places a second phone call over the data network 110to the same recipient of the original phone call. The second phone callis a VoIP call based on the same input into the client device 102 as theoriginal phone call. Based on advice from the network monitor module218, the dialer module 220 may determine that the data network 110 isstable enough such that the second phone call may be maintained solelyby the data network 110 and drop the original phone call over thecarrier network 108. Alternatively, the network monitor module 218 maydetermine that the signal quality of the carrier network 108 hasimproved and therefore the second call over the data network 110 may bedropped.

Accordingly, based on the advice from the network monitor module 218,the dialer module 220 will instruct the client device 102 to be in oneof three calling conditions. The first condition is a phone call over asingle communication network such as carrier network 108 or data network110. The second condition is two separate phone calls with one phonecall over a first network such as the carrier network 108 and the otherphone call over a second network such as the data network 110. The thirdcondition is a transition from two active phone calls to a single phonecall over whichever network (carrier network 108 or data network 110)the network monitor module 218 determines is most suitable for the phonecall.

Turning now to FIG. 3, a block diagram of basic functional componentsfor a server 104 is depicted, according to one aspect of the disclosure.Server 104 runs a central service interposed in the signaling paths ofinbound and outbound phone calls from and to client devices, such asclient device 102 and client device 106 (see FIG. 1). The server 104includes one or more processors 302, memory 304, network interface(s)306, one or more storage devices 308, a media mixing module 310, a mediasession data joining module 312, and a connection service module 314. Insome embodiments, each of the components including the processor(s) 302,memory 304, network interface(s) 306, storage device(s) 308, mediamixing module 310, media session data joining module 312, and connectionservice module 314 are interconnected physically, communicatively,and/or operatively for inter-component communications.

As illustrated, processors 302 are configured to implement functionalityand/or process instructions for execution within the server 104. Forexample, processors 302 execute instructions stored in memory 304 orinstructions stored on storage devices 308. Memory 304, which may be anon-transient, computer-readable storage medium, is configured to storeinformation within server 104 during operation. In some embodiments,memory 304 includes a temporary memory, i.e. an area for information notto be maintained when the server 104 is turned off. Examples of suchtemporary memory include volatile memories such as random accessmemories (RAM), dynamic random access memories (DRAM), and static randomaccess memories (SRAM). Memory 304 also maintains program instructionsfor execution by the processors 302.

Storage devices 308 also include one or more non-transientcomputer-readable storage media. Storage devices 308 are generallyconfigured to store larger amounts of information than memory 304.Storage devices 308 may further be configured for long-term storage ofinformation. In some examples, storage devices 304 include non-volatilestorage elements. Non-limiting examples of non-volatile storage elementsinclude magnetic hard discs, optical discs, floppy discs, flashmemories, or forms of electrically programmable memories (EPROM) orelectrically erasable and programmable (EEPROM) memories.

The server 104 uses network interface(s) 306 to communicate withexternal devices via one or more networks, such as the carrier network108 or the data network 110 of FIG. 1. Such networks may also includeone or more wireless networks, wired networks, fiber optics networks,and other types of networks through which communication between theserver 104 and an external device may be established. Networkinterface(s) 306 may be a network interface card, such as an Ethernetcard, an optical transceiver, a radio frequency transceiver, or anyother type of device that can send and receive information.

The server 104 includes the media mixing module 310, which runs a mediamixing service that coordinates the signaling from a plurality of clientdevices participating in a communication session via server 104. Themedia mixing service is a central service receiving individual datasignals from each of the plurality of client devices, such as clientdevices 102 and 106 (see FIG. 1), participating in a communicationsession through server 104. The media mixing service then mixes the datasignals received from each of the plurality of client devices such thatthe media transmitted over the data signals is shared among theplurality of client devices.

In the embodiment illustrated in FIG. 1, client device 102 and clientdevice 106 each transmit a data signal containing media to be shared inthe communication session. The media mixing module 310 receives the datasignals from each of client device 102 and client device 106 and relaysthe media contained in the data signals to the recipient device. Themedia may be audio, video, text, or images. Also, while only clientdevice 102 and client device 106 are illustrated in FIG. 1, the mediamixing module 310 is capable of operating with more than two clientdevices participating in a communication session.

Additionally, the media mixing module 310 is capable of controllingsystem resources of the server 104 such that for low data ratecommunication sessions only a minimal amount of system resources areutilized. For example, if there are only two participants in acommunication session, and the media transmitted in the data signalsfrom each of the two participants is audio data, then the media mixingmodule 310 will instruct the server 104 to utilize a minimal amount ofsystem resources. During the communication session between the twoparticipants, if the media switches to video or several additionalparticipants join the communication session, then the media mixingmodule 310 will instruct the server 104 to use more system resources tosupport the communication session.

The server 104 includes a media session data joining module 312, whichruns a data joining service. The data joining service operates inconjunction with the media mixing service to allow a client deviceparticipating in a communication session (such as client devices 102 and106 from FIG. 1) to locate and join the communication session over adata network, such as data network 110. For example, if client device102 (see FIG. 1) is participating in the communication session over thecarrier network 108 and during the communication session indicates tothe server 104 that it wants to communicate over data network 110, thedata joining service facilitates client device 102 placing a redundantphone call over the data network 110. The same data signal istransmitted from client device 102 over both the carrier network 108 andthe data network 110.

The data joining service utilizes a variety of techniques to facilitateplacement of a redundant phone call over the data network 110. One suchtechnique is to send a message containing an identifier of thecommunication session to a client device, such as client device 102,after receiving indication that the client device 102 is switchingnetworks, as discussed above in relation to FIG. 2. Client device 102then places the redundant phone call over the data network, such as datanetwork 110, to the server 104, which then joins the phone call to thecommunication session. Once the redundant phone call is joined to thecommunication session, the client device 102 may make the decision toterminate the original phone call, as discussed above. This message maybe implemented using a mobile push notification service.

A second technique used to facilitate placement of a redundant phonecall from a client device, such as client device 102, participating in acommunication session through the server 104 is a network ApplicationProgramming Interface (API) provided by the data joining service. TheAPI is configured to provide an identifier of the communication sessionto the client device 102 upon query from the client device 102. The APIknows determines the identifier based on a query of the client device's102 call currently in progress. The client device 102 then utilizes theidentifier to locate and join the communication session over a redundantphone call. Once the redundant phone call is joined to the communicationsession, the client device 102 may make the decision to terminate theoriginal phone call.

The server 104 includes a connection module 314, which runs a connectionservice. The connection service operates in conjunction with the mediamixing service of the media mixing module 310 to allow a client deviceparticipating in a communication session (such as client devices 102 and106 from FIG. 1) to locate and join the communication session over acarrier network, such as carrier network 108. For example, if clientdevice 102 (see FIG. 1) is participating in the communication sessionover the data network 110 and during the communication session indicatesto the server 104 that it wants to communicate over carrier network 108,the connection service facilitates client device 102 placing a redundantphone call over the carrier network 108. The same data signal istransmitted from client device 102 over both the carrier network 108 andthe data network 110.

The connection service utilizes a variety of techniques to facilitateplacement of a redundant phone call over the carrier network 108. Onesuch technique is to send a message containing a connection phone numberfor the communication session to a client device, such as client device102. The client device 102 then places the redundant phone call over thecarrier network 108 to the server 104 using the connection phone number,which then joins the phone call to the communication session. Once theredundant phone call is joined to the communication session, the clientdevice 102 may make the decision to terminate the original phone call.This message may be implemented using a mobile push notificationservice.

A second technique used to facilitate placement of a redundant phonecall from a client device, such as client device 102, participating in acommunication session through the server 104 is a number request via aphone call to a controlled phone number of the server 104. Thecontrolled phone number calls the media mixing service of the mediamixing module 310 directly, and the media mixing service instructs theconnection service to provide a phone number for the ongoingcommunication session. The client device calls the phone number providedby the connection service over the carrier network 108 in order tolocate and join the communication session through a redundant phonecall. Once the redundant phone call is joined to the communicationsession, the client device 102 may make the decision to terminate theoriginal phone call.

In a particular embodiment, a client device, such as client device 102,is able to place a redundant phone call over a carrier network, such ascarrier network 108, to the server 104 without utilizing the connectionservice. In this embodiment, the client device 102 is preprogrammed withat least one phone number that calls the media mixing module 310 ofserver 104 directly. When the media mixing module 310 receives a phonecall over this preprogrammed number it reads the caller identificationinformation to determine whether client device 102 is currentlyparticipating in a communication session. The media mixing module thenconnects the redundant phone call to the communication session. Once theredundant phone call is joined to the communication session, the clientdevice 102 may make the decision to terminate the original phone call.

The server 104 depicted in FIG. 3 is representative of a physicalembodiment of a server. However, the server 104 may be implemented as avirtual server such as a cloud server.

Server 104 is configured to receive a data signal associated with aphone call placed from client devices, such as client devices 102 and106 (see FIG. 1) over a communication network via outbound callinterception techniques. In the specific embodiment illustrated in FIG.1, the server 104 is configured to receive the data signal from either acarrier network 108 or a data network 110, but in other embodiments,more than two networks are contemplated.

One such technique used by server 104 for outbound call interception isshadow number calling. Shadow number calling requires the dialer module220 to call a reserved shadow phone number that connects directly to themedia mixing module 310 of server 104 instead of the number entered bythe user. The dialer module 220 then provides the user entered number ofthe recipient client device, such as client device 106 and the clientdevice's 102 own phone number to the media mixing module 310. The mediamixing module 310 then places a separate phone call to the recipientclient device 106 and then joins the two phone calls into acommunication session.

Another technique used by server 104 for outbound call interception isnetwork integration. Using this technique, both the carrier network 108and the data network 110 know when it receives an initiation request fora phone call from the dialer module 220 of client device 102 to relaythe data signal associated with the phone call to the media mixingmodule 310 of server 104. The media mixing module 310 then places aphone call to the recipient client device 106 and joins the two phonecalls into a communication session. The media mixing module 310 usesidentification information in the data signal to place a phone call tothe recipient client device 108 (see FIG. 1). In the embodimentillustrated in FIG. 1, this phone call is a VoIP phone call over SIPnetwork 112. After placing the phone call, the media mixing module 310then completes the communication session by sending the data signalassociated with the phone call from client device 102 over the VoIPphone call to the recipient client device 106.

Server 104 is further configured to receive a data signal associatedwith a phone call placed to the client device 102 (see FIG. 1) over acommunication network via inbound call interception techniques. In thespecific embodiment illustrated in FIG. 1, the server 104 is configuredto receive the data signal from either a carrier network 108 or a datanetwork 110, but in other embodiments, more than two networks arecontemplated.

One such technique used by server 104 for inbound call interception isservice number calling. Service number calling requires a user provide aservice number as a primary point of contact. The service number callsthe media mixing module 310 of server 104 directly as opposed to theuser's associated client device. The media mixing module 310 knows theuser associated with the service number and places a separate phone callto the user's associated client device, such as client device 102. Themedia mixing module 310 then joins the two phone calls into acommunication session.

As an aside, the media mixing module 310 can call more than one deviceassociated with the user based on the service number. In this manner,the user can be reached via multiple points of contact.

Another technique used by server 104 for inbound call interception isnetwork integration. Using this technique, both the carrier network 108and the data network 110 know when it receives an initiation request fora phone call to client device 102 to relay the data signal associatedwith the phone call to the media mixing module 310 of server 104 ratherthan directly to client device 102. The media mixing module 310 thenplaces a phone call to client device 102 and joins the two phone callsinto a communication session.

As an aside, in other embodiments, other types of phone calls besides aVoIP call over a variety of different types of networks besides an SIPnetwork 112, both data and voice based, are contemplated. Additionally,the above described outbound and inbound interception techniques areutilized when the user dials a phone number to reach a remote party.Embodiments of the invention are contemplated where the media mixingmodule 310 of server 104 controls the signaling between a plurality ofclient devices involved in a communication session such as a multi-partyvideo conference, which is not initiated by dialing a phone number. Inthis situation, the plurality of client devices join the conferencedirectly through the server 104 and the media mixing module 310 controlsthe signaling therebetween. In this manner, there is no need for anoutbound or inbound interception technique because no phone number isbeing dialed by the client device.

Furthermore, in the situation where the dialer module 220 places twosimultaneous phone calls from the client device 102, both data signals(original and redundant) associated with the phone calls will be relayedto the media mixing module 310 of the server 104. The media mixingmodule 310 will realize that both data signals are from the same clientdevice and should be directed to the same recipient device 106 based onidentification information in the data signals such as a phone numberassociated with the recipient client device 106. In this configuration,the media mixing module 310 uses both data signals associated with thephone calls to synthesize a best quality data signal, which it thensends to the recipient client device 106 over the separate phone callestablished when the original phone call was first initiated.

Several techniques can be used to synthesize the best quality datasignal to the recipient client device 106. One technique the mediamixing module 310 uses to synthesize a best quality data signal relieson the two separate data signals carrying the same data because they areassociated with the same input into the client device 102. Specifically,to synthesize the best quality data signal the media mixing module 310will merely send the data signal that is received at the server 104first and discard the other.

Another technique to produce a best quality data signal is for thedialer module 220 to split the data signal based on the singular inputinto the client device 102 and send part of the data over eachcommunication network, such as the carrier network 108 and the datanetwork 110. Splitting the data signal is advantageous because itincreases the bandwidth available for the data signal. This may be donein situations where the network monitor module 218 notices stable signalquality from both the carrier network 108 and the data network 110. Inthis scenario, the media mixing module 310 must know how the dialermodule 220 is splitting the data among the two networks 108 and 110 suchthat it can reconstruct the data signal and send it to the recipientclient device 106.

While there are many possibilities on how to split the data, one methodis to use a scalable coding technique where the data signal is splitinto a base layer and a high quality incremental layer. In thisembodiment, the base layer of the data signal would be sent over onenetwork and the incremental layer would be sent over the other network.Another technique to split the data signal is to send alternate packetsover each network connection. For example, a first packet of the datasignal could be sent over the carrier network 108 and a second packetcould be sent over the data network 110.

Regarding a data signal received at the media mixing module 310 from therecipient client device 106, the media mixing module 310 is configuredto transmit this data signal back to the client device 102 overwhichever network connection is active. Specifically, in the scenariowhere only a single communication network such as the carrier network108 is active, the media mixing module 310 will send the data signalreceived from the recipient device 106 to the client device 102 over thecarrier network 108. In the situation where both the carrier network 108and the data network 110 are active, the media mixing module 310 willreproduce the data signal received from the recipient client device 106and send over both communication networks 108 and 110. Client device 102will then receive the same data signal over each of the carrier network108 connection and the data network 110 connection. The client device102 will reproduce the singular data signal from the recipient clientdevice 106 by utilizing whichever packet is received first anddiscarding the redundant packet from the other network.

In this manner, the connection between the client device 102 and therecipient client device 106 can be maintained even when switchingbetween the communication networks 108 and 110. This is because nomatter whether the connection to the client device 102 is over thecarrier network 108 or the data network 110, the media mixing module 310will maintain the call to the recipient client device 106 and justcomplete the communication over whichever communication network 108 or110 the client device 102 is currently communicating with.

Furthermore, because the server 104 is an intermediary entity betweenthe client device 102 and the recipient client device 106, if the clientdevice 102 is connected over the carrier network 108 and the call fromthe client device 102 to the server 104 drops, the media mixing module310 of server 104 will be able to tell whether the recipient clientdevice 106 hung up or whether the network inadvertently dropped thecall. The media mixing module 310 can make this determination because ifit is a carrier network 108 failure that causes the call to end, thenthe connection from the server 104 to the recipient client device 106would still be active. Otherwise, if the recipient client device 106hung up, the connection to the server 104 would no longer be active. Inthe event that a network failure is detected, the dialer module 220 ofthe client device 102 will reestablish the connection to the server 104,and the server 104 will just resume the connection as it was before thenetwork failure.

Turning now to FIGS. 4-9, flow charts are illustrated that disclose anexemplary embodiment of the disclosure contained herein. FIG. 4illustrates a flow chart 400 depicting steps performed by the networkmonitor module 218 (see FIG. 2) in conjunction with the dialer module220. At steps 402 and 404, the network monitor module 218 will determinethe signal quality of first and second network connections (such ascommunication networks 108 and 110 from FIG. 1). At step 406, thenetwork monitor module 218 compares the signal quality of the first andsecond network connections and selects the network connection with thehighest signal quality at step 408. At step 410, the dialer module 220initiates a communication session or in other words a phone call to theserver 104 over the selected network connection. While the phone call isunderway, the network monitor module 218 continues to monitor the signalquality of the network connections at step 412. At step 414, the networkmonitor module 218 determines whether the signal quality of the selectednetwork connection had degraded such that placing a call over thealternative network is advised or that the signal quality of thealternative network has increased such that the alternative network isadvised. If the connection has not degraded or the signal quality of thealternative network has not increased, then the dialer module 220 willjust maintain the phone call at step 416. However, if the signal qualityof the selected network has degraded or the alternative network signalquality has increased, then the network monitor module 218 will providea signal quality of the unselected network connection to the dialermodule 220.

Flow chart 500 illustrated in FIG. 5 depicts the steps performed by thedialer module 220 (see FIG. 2) based on advice from the network monitormodule 218. At step 502, the dialer module 220 initiates a communicationsession or phone call over the selected network, similar to step 410 ofFIG. 4. At step 504, the dialer module 220 relays a data signalassociated with the initiated phone call to the server 104. At step 506,the dialer module 220 receives indication that the signal quality of theselected network connection has degraded or the signal quality of analternative or unselected network has increased. At step 508, the dialermodule 220 initiates a second communication session or in other words asecond phone call over the previously unselected network. At step 510,the dialer module 220 relays a second data signal associated with thesecond phone call to the server 104 (see FIG. 1). At step 512, thenetwork monitor 218 determines whether the signal quality of one of thenetwork connections has changed such that it will advise to terminateone of the connections. For instance, the signal quality of one networkhas improved greatly and the signal quality of the other network hasdegraded significantly. Or the signal quality of just one network hasdegraded significantly. If the signal quality of both the networks isadequate, then both phone calls are maintained at step 514. However, ifthe signal quality of at least one of the networks has changed such thattermination is recommended, the dialer module 220 terminates the phonecall associated with that network at step 516.

Flow chart 600 illustrated in FIG. 6 depicts the steps performed by theserver 104 (see FIG. 1) based on receiving a data signal or data signalsfrom the dialer module 220 (see FIG. 2) of the client device 102. Atstep 602, the server 104 receives a first data signal from the dialermodule 220. At step 604, using identification information contained inthe data signal, the server 104 determines a destination for the datasignal, such as recipient client device 106. At step 606, the server 104places a phone call to the determined destination or in other words, therecipient client device 106 and joins the call from the client device102 to the call to the recipient client device 106. At step 608, theserver 104 checks to see if a second data signal has been received fromthe dialer module 220. If not, then the server 104 maintains thecommunication session between the client device 102 and the recipientclient device 106. If a second data signal has been received from thedialer module 220, then, at step 612, the server 104 associates thefirst data signal with the second data signal. At step 614, the server104 synthesizes a best quality voice stream based on the received firstand second data signals. At step 616, the server 104 transmits the bestquality data signal over the phone call to the recipient client device106. At step 618, the server 104 receives a return data signal from therecipient client device 106. At step 620, the server 104 transmits adata signal from the recipient client device 106 over both the first andsecond networks to the client device 102. At step 622, the server 104checks if the dialer module 220 has terminated one of the phone callsassociated with one of the data signals. If no such termination hasoccurred, then at step 624 the server 104 maintains the communicationsession between the client device 102 and the recipient client device106 utilizing both the first and second data signals to synthesize abest quality data signal to send to the recipient client device 106. Ifthe dialer module 220 has terminated one of the data signals from theclient device 102, then at step 626 the server 104 maintains thecommunication session between the client device 102 and the recipientclient device 106 using only the remaining data signal from the clientdevice 102.

Flow chart 700 illustrated in FIG. 7 depicts the steps performed by theserver 104 (see FIG. 1) based on receiving a data signal from the dialermodule 220 (see FIG. 2) of the client device 102. Flow chart 700 issimilar to flow chart 600 (see FIG. 6) but contains more specificityregarding operation of the media mixing module 310. At step 702, theserver 104 receives a first data signal from client device 102 at amedia mixing module 310 of the server. The data signal contains mediadata from client device 102 and an identifier of a recipient clientdevice, such as client device 106. At step 704, the server 104 conductsa first phone call between client device 102 and the media mixing module310 of the server 104 based on the first data signal received from theclient device 102. At step 706, the media mixing module 310 initiates asecond phone call from the media mixing module 310 of the server 104 tothe recipient client device 106 based on the identifier contained in thedata signal from client device 102. At step 708, the media mixing module310 connects the recipient client device 106 to the media mixing moduleof the server over the second phone call. At step 710, server 104receives a second data signal from the recipient client device 106 atthe media mixing module 310 of the server 104. The second data signalcontains media data from the second client device. At step 712, themedia mixing module 310 joins the first data signal from client device102 and the second data signal from the recipient client device 106 in amedia mixing communication session. In this manner, the media mixingmodule 310 coordinates the media contained in the first and second datasignals between client device 102 and client device 106.

Flow chart 800 illustrated in FIG. 8 depicts the steps performed by theserver 104 (see FIG. 1) based on receiving an indication of a request tomove at least one of the first data signal or second data signal (seeFIG. 7) to one of the carrier network 108 or the data network 110 (seeFIG. 1). Flow chart 800 is similar to flow chart 500 (see FIG. 5), butflow chart 800 illustrates the steps taken from the perspective of themodules running on server 104. At step 802, the media mixing module 310of the server 104 receives a request to move to either carrier network108 or data network 110 from either or both of the client device 102 orthe client device 106. At step 804, the media mixing module 310 sends anidentifier of the ongoing media mixing communication session (see FIG.7) to the client device that sent the request to move. At step 806, themedia mixing module 310 receives a third phone call transmitting a thirddata signal redundant to the data signal from the client device thatsent the request to move over either the carrier network or the datanetwork.

As an aside, the choice of whether to move to the carrier network or thedata network is performed by the client device, such as client device102. As discussed above, the client device 102 will make this decisionbased on network quality and capacity for the desired data to be sharedduring the communication session. If client device 102 requests to moveto the data network 110, then the media session data joining module 312(see FIG. 3) is utilized to assist in the move. And if the client device102 requests to move to the carrier network 108, then the connectionservice module 314 (see FIG. 3) is utilized to assist in the move.

Returning to flow chart 800, at step 808, the media mixing module 310joins the third data signal to the media mixing communication sessionover either the carrier network or the data network, as requested byclient device 102. At this point, using the system illustrated in FIG.1, the third data signal is redundant to either the first or second datasignals, depending on which client device (either client device 102 or106) decided to move. As described in FIG. 5 above, the client device102 or 106 then decides whether to maintain both transmitted datasignals or to terminate one of the data signals.

Flow chart 900 illustrated in FIG. 9 depicts the steps performed by themedia mixing module 310 of the server 104 (see FIG. 1) based onreceiving a request to change an ongoing communication session to amultimedia communication session, such as a video call. At step 902, themedia mixing module 310 receives a request to switch from an audio databased communication session to a multimedia data based communicationsession, such as a video call. At step 904, the media mixing module 310receives an indication of whether the network the client device iscurrently communicating over is capable of transmitting multimedia datasuch as video data. If the current network is capable, then the mediamixing module 310 will receive the multimedia data from the clientdevice, at step 906, and then proceed to share the multimedia data withother client devices associated with the communication session at step908. If the current network is not capable of transmitting multimediadata, then the client device checks if a more suitable network isavailable. If a more suitable network is not available, then the requestto transmit multimedia data is denied at step 912. If a more suitablenetwork is available, then a request to move to the more suitablenetwork is performed at step 914. Moving to a new network is performedas described in FIG. 8. After the client device is joined to thecommunication session over the more suitable network for transmittingmultimedia data, then the media mixing module 310 of server 104 sharesthe multimedia data over the media mixing communication session at step908. In this manner, the media mixing module 310 coordinates thesignaling between each participating client device in the media mixingcommunication session.

All references, including publications, patent applications, andpatents, cited herein are hereby incorporated by reference to the sameextent as if each reference were individually and specifically indicatedto be incorporated by reference and were set forth in its entiretyherein.

The use of the terms “a” and “an” and “the” and “at least one” andsimilar referents in the context of describing the invention (especiallyin the context of the following claims) are to be construed to coverboth the singular and the plural, unless otherwise indicated herein orclearly contradicted by context. The use of the term “at least one”followed by a list of one or more items (for example, “at least one of Aand B”) is to be construed to mean one item selected from the listeditems (A or B) or any combination of two or more of the listed items (Aand B), unless otherwise indicated herein or clearly contradicted bycontext. The terms “comprising,” “having,” “including,” and “containing”are to be construed as open-ended terms (i.e., meaning “including, butnot limited to,”) unless otherwise noted. Recitation of ranges of valuesherein are merely intended to serve as a shorthand method of referringindividually to each separate value falling within the range, unlessotherwise indicated herein, and each separate value is incorporated intothe specification as if it were individually recited herein. All methodsdescribed herein can be performed in any suitable order unless otherwiseindicated herein or otherwise clearly contradicted by context. The useof any and all examples, or exemplary language (e.g., “such as”)provided herein, is intended merely to better illuminate the inventionand does not pose a limitation on the scope of the invention unlessotherwise claimed. No language in the specification should be construedas indicating any non-claimed element as essential to the practice ofthe invention.

Preferred embodiments of this invention are described herein, includingthe best mode known to the inventors for carrying out the invention.Variations of those preferred embodiments may become apparent to thoseof ordinary skill in the art upon reading the foregoing description. Theinventors expect skilled artisans to employ such variations asappropriate, and the inventors intend for the invention to be practicedotherwise than as specifically described herein. Accordingly, thisinvention includes all modifications and equivalents of the subjectmatter recited in the claims appended hereto as permitted by applicablelaw. Moreover, any combination of the above-described elements in allpossible variations thereof is encompassed by the invention unlessotherwise indicated herein or otherwise clearly contradicted by context.

The invention claimed is:
 1. A method of communicating a data stream by a client device, the method comprising: monitoring signal quality of a plurality of network connections at a network monitor of the client device; selecting at least one network connection of the plurality of network connections by the network monitor of the client device based on a signal quality of the at least one network connection; establishing a first communication session from a dialer of the client device over the at least one network connection of the plurality of network connections to a server via a first network; transmitting a first part of the data stream over the first communication session from the dialer of the client device to the server configured to receive data from the plurality of network connections and transmit the data to a recipient device; establishing a second communication session from the dialer of the client device to the server over a second network connection of the plurality of network connections via a second network; and transmitting, simultaneously, both the first part of the data stream over the first communication session and a second part of the data stream over the second communication session from the dialer of the client device to the server, wherein the first part of the data stream and the second part of the data stream are different parts of a same data signal generated at the client device, wherein the server is configured to: from the first part of the data stream over the first communication session and the second part of the data stream over the second communication session, reconstruct the data signal as a single data stream; send the single data stream to the recipient device over a single communication session placed by the server to the recipient device; receive a return data stream from the recipient device; and transmit the return data stream over both the first communication session and the second communication session to the client device.
 2. The method of claim 1, further comprising terminating at least one of the first communication session and the second communication session based on the signal quality of an associated network connection.
 3. The method of claim 1, wherein one of the at least one network connection and the second network connection communicates with a carrier Public Switched Telephone Network (PSTN), and the carrier PSTN associates the dialer of the client device with the server.
 4. The method of claim 1, wherein one of the at least one network connection or the second network connection communicates with a Wi-Fi network, and the dialer directly communicates with the server over the Wi-Fi network.
 5. The method of claim 1, wherein the first part of the data stream over the first communication session is associated with the second part of the data stream over the second communication session based on a phone number received at the server from the dialer of the client device, the phone number is associated with the recipient device.
 6. The method of claim 1, wherein the server is configured to complete the first communication session by calling the recipient device from the server at a phone number received from the dialer of the client device.
 7. The method of claim 6, wherein the step of calling is performed over a carrier Public Switched Telephone Network (PSTN) to a Session Initiation Protocol (SIP) network.
 8. The method of claim 1, wherein the server is a cloud server.
 9. A method of communicating a data stream by a client device, the method comprising: monitoring signal quality of a plurality of network connections at a network monitor of the client device; selecting at least one network connection of the plurality of network connections by the network monitor of the client device based on a signal quality of the at least one network connection; establishing a first communication session from a dialer of the client device over the at least one network connection of the plurality of network connections to a server via a first network; transmitting a first part of the data stream over the first communication session from the dialer of the client device to the server configured to receive data from the plurality of network connections and transmit the data to a recipient device; establishing a second communication session from the dialer of the client device to the server over a second network connection of the plurality of network connections via a second network; transmitting, simultaneously, both the first part of the data stream over the first communication session and a second part of the data stream over the second communication session from the dialer of the client device to the server, wherein the first part of the data stream and the second part of the data stream are different parts of a same data signal generated at the client device, wherein the first part of the data stream over the first communication session contains voice data associated with a phone call between the client device and the recipient device; and upgrading the voice data to contain High Definition (HD) voice data based on the signal quality of the at least one network connection.
 10. The method of claim 9, further comprising: upgrading the phone call to a video call based on the signal quality of the at least one network connection.
 11. A system for communication between a client device and a recipient device, the system comprising: the client device configured to communicate with a plurality of wireless communication networks, the client device comprising: an input device; an output device; a network monitor module operative to detect a signal strength of each of the plurality of wireless communication networks; and a dialer module operative to establish a first communication session with a server via a first wireless communication network based on the signal strength detected by the network monitor, establish a second communication session with the server via a second wireless communication network, and transmit, simultaneously, to the server a first part of a data stream over the first communication session and a second part of the data stream over the second communication session, wherein the first part of the data stream and the second part of the data stream are different parts of a same data signal generated at the client device, wherein the server is configured to: receive the first part of the data stream over the first communication session and the second part of the data stream over the second communication session from the client device; and establish a communication session from the server to the recipient device based on data received from the client device, the server further configured to transmit the data received from the client device to the recipient device; determine that the first part of the data stream and the second part of the data stream are both intended to be delivered to the recipient device; and synthesize a third data stream based on the first part of the data stream and the second part of the data stream, the third data stream representing a best quality data stream compiled from the first part of the data stream and the second part of the data stream.
 12. The system of claim 11, wherein the server transmits the third data stream in the communication session from the server to the recipient device.
 13. The system of claim 11, wherein the dialer terminates one of the first communication session and the second communication session based on the detected signal strength from the network monitor.
 14. The system of claim 11, wherein one of the first communication session and the second communication session communicates over a carrier Public Switched Telephone Network (PSTN), and the carrier PSTN associates the dialer of the client device with the server.
 15. The system of claim 11, wherein one of the first communication session and the second communication session communicates over a Wi-Fi network, and the dialer directly communicates with the server over the Wi-Fi network.
 16. The system of claim 11, wherein the server is a cloud server. 